package hottargui.framework;

/**
 * State pattern Defines the possible states in the Targui game
 */
public interface TarguiState {
	/**
	 * Return a State indicating the "value" of the state
	 * 
	 * @return State
	 */
	public State getState();

	public void newGame() throws IllegalActionException;

	public boolean move(Position from, Position to, int count) throws IllegalActionException;

	public boolean buy(int count, Position deploy) throws IllegalActionException;

	public PlayerColor turnCard() throws IllegalActionException;

	public void rollDie() throws IllegalActionException;

	public PlayerColor getWinner() throws IllegalActionException;

	public void yieldAttack() throws IllegalActionException;

	public void skip() throws IllegalActionException;
}
